home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / Dev / Oberon / Catalogs / Oberon-A.sd < prev    next >
Text File  |  1995-04-17  |  2KB  |  94 lines

  1. ##stringtype Oberon
  2. ##shortstrings
  3. <* STANDARD- *> <* MAIN- *> <* INITIALISE- *>
  4.  
  5. MODULE %o3;
  6. (****************************************************************
  7.  
  8.    This file was created automatically by `%fv'
  9.    Do NOT edit by hand!
  10.    Oberon-A source description C 1994 by Albert Weinert
  11.    Using with Oberon-A Interfaces for AmigaOS Release 3.1
  12.    Modified for Oberon-A 1.5 by Frank Copeland
  13.  
  14.    Application: %b
  15.    Language   : %l
  16.    Version    : %v
  17.    Description: %f0
  18.  
  19. ****************************************************************)
  20.  
  21. IMPORT
  22.   lo := Locale, e := Exec, u := Utility, y := SYSTEM;
  23.  
  24. CONST
  25.   builtinlanguage = %l;
  26.   version = %v;
  27.  
  28. CONST
  29.   %i* = %d;
  30.  
  31. TYPE
  32.   AppString = RECORD;
  33.      id  : LONGINT;
  34.      str : e.LSTRPTR;
  35.   END;
  36.   AppStringArray = ARRAY %n OF AppString;
  37.  
  38. VAR
  39.   AppStrings : AppStringArray;
  40.   catalog : lo.CatalogPtr;
  41.  
  42.   PROCEDURE SetStrings;
  43.     BEGIN
  44.       AppStrings[%e].id := %i; AppStrings[%e].str := y.ADR( %s );
  45.     END SetStrings;
  46.  
  47.   PROCEDURE CloseCatalog*();
  48.     BEGIN
  49.       IF catalog # NIL THEN lo.CloseCatalog (catalog); catalog:=NIL END;
  50.    END CloseCatalog;
  51.  
  52.   PROCEDURE OpenCatalog*(loc:lo.LocalePtr; language:ARRAY OF CHAR);
  53.     VAR Tag : ARRAY 4 OF u.TagItem;
  54.     BEGIN
  55.       CloseCatalog();
  56.       IF (catalog = NIL) & (lo.base # NIL) THEN
  57.         Tag[0].tag := lo.builtInLanguage; Tag[0].data := y.ADR( builtinlanguage );
  58.         Tag[1].tag := u.ignore;           Tag[1].data := y.ADR( language );
  59.         Tag[2].tag := lo.version;         Tag[2].data := version;
  60.         Tag[3].tag := u.done;
  61.  
  62.         IF language # "" THEN
  63.           Tag[1].tag:= lo.language;
  64.         END;
  65.         catalog := lo.OpenCatalogA (loc, "%b.catalog", Tag);
  66.       END;
  67.     END OpenCatalog;
  68.  
  69.   PROCEDURE GetString* (num: LONGINT): e.LSTRPTR;
  70.     VAR
  71.       i: LONGINT;
  72.       default: e.LSTRPTR;
  73.     BEGIN
  74.       i := 0; WHILE (i < %n) & (AppStrings[i].id # num) DO INC (i) END;
  75.  
  76.       IF i # %n THEN
  77.         default := AppStrings[i].str;
  78.       ELSE
  79.         default := NIL;
  80.       END;
  81.  
  82.       IF catalog # NIL THEN
  83.         RETURN lo.GetCatalogStr (catalog, num, default^);
  84.       ELSE
  85.         RETURN default;
  86.       END;
  87.     END GetString;
  88.  
  89. BEGIN
  90.   catalog := NIL;
  91.   SetStrings;
  92. END %o3.
  93.  
  94.